package com.leetcode.array;
/**
 * Given an array nums, write a function to 
 * move all 0's to the end of it while maintaining 
 * the relative order of the non-zero elements.
 * 
 * For example, given nums = [0, 1, 0, 3, 12], 
 * after calling your function, nums should be 
 * [1, 3, 12, 0, 0].
  
 Note:
 You must do this in-place without making a copy 
 of the array.
 Minimize the total number of operations.
 
 * @author Adiy
 *
 */
public class MoveZeros {

	public static void main(String[] args) {
		int nums[]={1,1,0,2,0,0};
        moveZeroes(nums);
        for(int i=0;i<nums.length;i++){
        	System.out.print(nums[i]+" ");
        }
	}

    public static void moveZeroes(int[] nums) {
        int len=nums.length;
        int k=0;
        for(int i=0;i<len;i++){
        	if(nums[i]==0){
        		for(int j=i;j<len-1;j++){
        			nums[j]=nums[j+1];
        		}
        		nums[len-1]=0;
        		len--;
        		i--;
        	}
        }
    }
}
